package com.ncst.backend.mapper;

import com.ncst.backend.domain.vo.DispenseItemVo;
import com.ncst.backend.domain.vo.DispensePatientVo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

@Mapper
public interface DispenseMapper {
    // 查询待发药列表（根据ids）
    List<DispenseItemVo> selectWaitDispenseListByIds(List<Integer> ids);

    // 查询患者信息
    DispensePatientVo selectPatientByCaseNumber(String caseNumber);

    // 查询待发药列表（根据病历号）
    List<DispenseItemVo> selectWaitDispenseList(Integer id);

    // 批量发药（乐观锁）
    int updateToDispensed(List<Integer> ids);

    // 扣库存
    /**
     * 扣减药品库存
     * @param drugId 药品ID
     * @param qty 扣减数量
     * @return 影响行数
     */
    int decreaseStock(@Param("drugId") Integer drugId, @Param("qty") Integer qty);
}